Synchronization of controller states in a distributed control system, including synchronization across luminaire nodes having controllers

ABSTRACT

A distributed control system, comprising a data network with a plurality of controller nodes that maintain and share their internal states with one another. The controller nodes can be luminaires that are capable of controlling the ambient lighting within a building area. There are one or more ambient light sensors within the data network for sensing and reporting the ambient light level. The controller luminaire nodes are members of a defined group of nodes that share, with one another, information for synchronizing their internal states, based in part on the ambient light levels that the one or more sensors are reporting. Meanwhile, each luminaire node also continually updates its own internal state based on the synchronization data received from the other nodes.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is related to “Synchronization of Controller States ina Distributed Control System,” U.S. application Ser. No. 15/991,909,incorporated by reference herein.

FIELD OF THE INVENTION

The present invention relates to building automation and control ingeneral, and, more particularly, to synchronization of internalcontroller states across processors in a distributed control system.

BACKGROUND OF THE INVENTION

“Commercial building automation,” or “commercial automation,” refers tothe use of computer and information technology to control commercialbuilding systems, such as lighting, HVAC, audio-visual, smoke detection,security, and shading, among others. Using specialized hardware andcontrol logic, building devices can monitor their environment and can becontrolled automatically. Although commercial automation has beenavailable at some level of sophistication for some time, it steadilybecomes more practical, from both a technological and cost perspective.

A sophisticated commercial automation and control system might includesensors (e.g., of temperature, of light, of motion, etc.), controllers(e.g., a general-purpose personal computer, a dedicated automationcontroller, etc.), and actuators or actors (e.g., motorized valves,switches, etc.). The system might also include a human-machine interfacedevice that enables an occupant of the building to interact with thesystem. The interface can be a specialized terminal or an application(“app”) running on a smartphone or tablet computer. The various systemdevices communicate over dedicated wiring, or over a wired network, orwirelessly, using one or more protocols.

Lighting automation and control systems now exist in which luminairesthat comprise sensors, lamps, and control logic are networked together,in what is sometimes referred to as “connected lighting” or networked“smart lighting.” In such a network, the sensors that are associatedwith the luminaires collect data about the local environment, such asdata related to ambient lighting in the vicinity of the luminaires. Thenetworked luminaires communicate with each other, in some cases sharingthe sensor data, and adjust the light output of the lamps via thecontrol logic, with some level of coordination across the networkedluminaires.

FIG. 1 depicts building control system 100 in the prior art. System 100comprises: sensor nodes 101-1 through 101-G, wherein G is a positiveinteger; actor nodes 102-1 through 102-H, wherein H is a positiveinteger; and controller 110. The aforementioned elements are logicallyinterconnected as shown and are physically interconnected, eitherwirelessly or via wired connections.

Sensor nodes 101-1 through 101-G include one or more of: motion sensors,occupancy sensors, temperature sensors, light sensors, and air qualitysensors. Actor nodes 102-1 through 102-H are building devices thatinclude one or more of: lamps, possibly with adjustable brightnessand/or color; window blinds that can be opened and closed; and HVAC(heating, ventilation, and air conditioning) systems. Using such sensorand actor nodes, building control system 100 is capable of triggeringand acting on certain conditions as a function of sensor readings, suchas turning on lights when ambient light is low or when motion isdetected, controlling HVAC systems in response to temperaturevariations, and so forth. Controller 110 coordinates and executes theactions to be taken by one or more of the actor nodes, based on i) theinput signals received from one or more of the sensor nodes and ii) oneor more memorized states.

SUMMARY OF THE INVENTION

Automation and control systems also exist in which a central controlleris not present. In some of these distributed control systems, sensornodes are configured to provide data directly to actor nodes, whereinthe data pertains to one or more physical conditions that are beingmonitored by the sensors. When the actor nodes receive the sensor data,the actor nodes can use the sensor data in order to control units thatare configured to perform one or more functions, such as lamps that areconfigured to provide light to an area within a building.

Distributed control systems have some advantages over centralizedcontrol systems, including in some cases the elimination of a singlepoint of failure and the reduction of processor load. Furthermore,technologies such as Bluetooth mesh networking can enable a single,published message to be processed by more than one network node; forexample, each sensor data message can be acted upon by more than onenode. However, in mesh networks the communication between the sensornodes and actor nodes, for example, is not necessarily reliable, in thatone or more of the actor nodes might not receive some of the messagescontaining the sensor data.

To compound problems, certain control systems that are based onsequential logic, such as some lighting control systems, rely on theinternal states of each of the controllers of the actor nodes beingmaintained correctly with respect to one another. Consequently, one ormore output values from the controllers, or from the controller logic,of the actor nodes might be out of synch with one another and,consequently, can cause problems with performing the control functionsof the automation and control system.

The present invention enables, in a data network of a distributedcontrol system, a plurality of controller nodes to maintain and sharetheir internal states with one another, thereby promoting more effectivecontrol of the physical condition being monitored and controlled, suchas the ambient light level. In accordance with the illustrativeembodiment of the present invention, the controller nodes are luminairesthat are capable of controlling the ambient lighting within a buildingarea. There are also one or more ambient light sensors within the datanetwork for sensing and reporting the ambient light level within thebuilding area. The controller luminaire nodes are members of a definedgroup of nodes that share, with one another, data for synchronizingtheir internal states, based in part on the ambient light levels thatthe one or more sensors are reporting. Meanwhile, each luminaire nodealso continually updates its own internal state based on thesynchronization data received from the other nodes.

Each node in the synchronization group comprises: a receiver, acontroller, an actor unit or an output controlling an actor unit, and atransmitter. The receiver, as part of a network interface, is configuredto receive synchronization messages from other nodes in the plurality ofnodes, wherein each synchronization message contains a value of aninternal state.

The controller of the illustrative embodiment is a Proportional-Integral(“P-I”) controller, and the internal-state value being synchronized isbased on the Integral (“I”) control term. The controller is configuredto generate a correction value that is dependent on the value of theinternal state that is received in the synchronization message. Thecontroller is also configured to generate an output value forcontrolling the actor unit, which is configured to perform a functionthat is dependent on the output value. The output value is dependent onthe controller's updated internal-state value, which is dependent on thecorrection value.

The transmitter, as part of the network interface, is configured totransmit, into the data network, one or more synchronization messages asneeded containing a value of the controller's internal state. Thus, eachnode is capable of sharing its internal state with other nodes, inaddition to receiving and acting upon synchronization data received fromthe other nodes.

The system disclosed herein is advantageous over at least someapproaches in the prior art, in that it avoids the use of acknowledgmentmessages as responses to the sensor data messages, thereby avoidingunnecessary message transmission overhead. The disclosed system alsoavoids imposing timing constraints across the controller nodes, therebyenabling each controller node to perform optimally according to its owntiming considerations, while at the same time accounting forstate-related information received from other controller nodes.

In accordance with the illustrative embodiment, the controller nodeswithin the data network of the illustrative embodiment are luminairescomprising lamps that provide light to, and serve as light sources for,their environment within a building. The controller nodes control theambient light within at least a portion of the building. As those whoare skilled in the art will appreciate after reading this specification,however, the nodes can be devices that are other than luminaires and thephysical condition being controlled can be something other than theambient light levels in the building. Furthermore, the controller unitof a node can be a different type of controller than a P-I controller,and the node can share and use a different type of internal-state valuethan one that is based on the Integral control term.

An illustrative data network that includes a plurality of nodes,comprises: a first controller node in the plurality of nodes,comprising: (i) a receiver configured to receive wirelessly a firstmessage from another node in the plurality of nodes, wherein the firstmessage contains a first state value of a first internal state, (ii) acontroller configured to generate a first correction value, IS_(corr1),that is dependent on the first state value of the first internal state,received in the first message, and (iii) a transmitter configured totransmit wirelessly a second message containing a second state value ofthe first internal state; and a second node in the plurality of nodes,comprising: (i) a receiver configured to receive wirelessly the secondmessage, and (ii) a controller configured to generate a secondcorrection value, IS_(corr2), that is dependent on the second statevalue of the first internal state, received in the second message;wherein the first and second nodes are further configured to repeatedlytransmit messages containing values of the first internal state, whereinthe messages comprise the first and second messages.

Another illustrative data network that includes a plurality of nodes,comprises: a first luminaire in the plurality of luminaires, comprising:(i) a receiver configured to receive wirelessly a first message fromanother luminaire in the plurality of luminaires, wherein the firstmessage contains a first state value of a first internal state, (ii) acontroller configured to generate a first correction value, IS_(corr1),that is dependent on the first state value of the first internal state,received in the first message, and (iii) a lamp configured to providelight at a light output that is dependent on the first correction value,and (iv) a transmitter configured to transmit wirelessly a secondmessage containing a second state value of the first internal state; anda second luminaire in the plurality of luminaires, comprising: (i) areceiver configured to receive wirelessly the second message, (ii) acontroller configured to generate a second correction value, IS_(corr2),that is dependent on the second state value of the first internal state,received in the second message, and (iii) a lamp configured to providelight at a light output that is dependent on the second correctionvalue; wherein the first and second luminaires are further configured torepeatedly transmit messages containing values of the first internalstate, wherein the messages comprise the first and second messages.

Yet another illustrative data network that includes a plurality ofnodes, comprises: a sensor configured to monitor ambient light level andto report values of the ambient light level; a first luminaire in theplurality of luminaires, comprising: (i) a receiver configured toreceive wirelessly a first message from another luminaire in theplurality of luminaires, wherein the first message contains a firststate value of a first internal state, (ii) a controller configured togenerate a first correction value, IS_(corr1), that is dependent on thefirst state value of the first internal state, received in the firstmessage, and (iii) a lamp configured to provide light at a light outputthat is dependent on the first correction value, and (iv) a transmitterconfigured to transmit wirelessly a second message containing a secondstate value of the first internal state; and a second luminaire in theplurality of luminaires, comprising: (i) a receiver configured toreceive wirelessly the second message, (ii) a controller configured togenerate a second correction value, IS_(corr2), that is dependent on thesecond state value of the first internal state, received in the secondmessage, and (iii) a lamp configured to provide light at a light outputthat is dependent on the second correction value; wherein the first andsecond luminaires are further configured to repeatedly transmit messagescontaining values of the first internal state, wherein the messagescomprise the first and second messages, and wherein one or more of thevalues of the first internal state are dependent on the values of theambient light level.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts building control system 100 in the prior art.

FIG. 2 depicts building control system 200 in accordance with theillustrative embodiment.

FIG. 3 depicts at least some of the nodes within data network 210 ofsystem 200.

FIG. 4 depicts the salient components of node 301-m.

FIG. 5 depicts the salient features of controller architecture 500,which defines, at least in part, the controller logic executed bycontroller 403 of luminaire node 301-m.

FIG. 6 depicts salient operations of method 600 according to theillustrative embodiment, by which each node 301-m performs variousfunctions related to processing messages for synchronizing internalcontroller states.

FIG. 7 depicts salient sub-operations of operation 605 of method 600.

FIG. 8 depicts salient sub-operations of operation 611 of method 600.

FIG. 9 depicts salient sub-operations of operation 613 of method 600.

FIG. 10 depicts salient sub-operations of operation 615 of method 600.

FIG. 11 depicts salient sub-operations of operation 619 of method 600.

DETAILED DESCRIPTION

Based on—For the purposes of this specification, the phrase “based on”is defined as “being dependent on” in contrast to “being independentof”. The value of Y is dependent on the value of X when the value of Yis different for two or more values of X. The value of Y is independentof the value of X when the value of Y is the same for all values of X.Being “based on” includes both functions and relations.

Control—For the purposes of this specification, the infinitive “tocontrol” and its inflected forms (e.g., “controlling”, “controlled”,etc.) should be given the ordinary and customary meaning that the termswould have to a person of ordinary skill in the art at the time of theinvention.

Controller Node—For the purposes of this specification, the term“controller node” is defined as a node in a data network comprising acontroller that is configured to control an actor unit by generating oneor more output values that are used by the actor unit.

Sensor Node—For the purposes of this specification, the term “sensornode” is defined as a node in a data network comprising a sensor unitthat is configured to monitor a physical condition and to report sensordata values of the physical condition.

Generate—For the purposes of this specification, the infinitive “togenerate” and its inflected forms (e.g., “generating”, “generated”,etc.) should be given the ordinary and customary meaning that the termswould have to a person of ordinary skill in the art at the time of theinvention.

Lamp—For the purposes of this specification, the term “lamp” is definedas a device for providing illumination, comprising an electric bulb andits holder.

Luminaire—For the purposes of this specification, the term “luminaire”is defined as a lighting unit comprising a lamp and a controller forcontrolling the lamp. A luminaire is an example of a controller node.

Network address—For the purposes of this specification, the term“network address,” or “computer network address,” is defined as anumerical label assigned to each device (e.g., sensor node, actor node,configuring node, etc.) participating in a computer network. Forexample, an Internet Protocol address (IP address) is a numerical labelassigned to each device participating in a computer network that usesthe Internet Protocol for communication. A “source address” is anexample of a network address, in that it specifies the device thatoriginated a transmitted data packet or message conveyed by one or morepackets.

Receive—For the purposes of this specification, the infinitive “toreceive” and its inflected forms (e.g., “receiving”, “received”, etc.)should be given the ordinary and customary meaning that the terms wouldhave to a person of ordinary skill in the art at the time of theinvention.

Transmit—For the purposes of this specification, the infinitive “totransmit” and its inflected forms (e.g., “transmitting”, “transmitted”,etc.) should be given the ordinary and customary meaning that the termswould have to a person of ordinary skill in the art at the time of theinvention.

To facilitate explanation and understanding of the present invention,the following description sets forth several details. However, it willbe clear to those having ordinary skill in the art, after reading thepresent disclosure, that the present invention may be practiced withoutthese specific details, or with an equivalent solution or configuration.Furthermore, some structures, devices, and operations that are wellknown in the art are depicted in block diagram form in the accompanyingfigures in order to keep salient aspects of the present invention frombeing unnecessarily obscured.

FIG. 2 depicts building control system 200 in accordance with theillustrative embodiment, which comprises sensor nodes 201-j, where j isa positive integer from 1 to J and actor nodes 202-k, where k is apositive integer from 1 to K, and where the plurality of nodescommunicate with each other within data network 210. In control system200, sensor node 201-j (hereinafter generically “sensor node 201”) isdepicted as being able to communicate with each actor node 202-k(hereinafter generically “actor node 202”).

Control system 200 is an example of a system having distributed logic,in contrast to control system 100 in the prior art that has centralizedcontrol logic (provided by system controller 110). More particularly, incontrol system 200 in the illustrative embodiment, the functionalitythat is provided in system 100 by system controller 110, is distributedamong other elements of the control system, particularly among actornodes 202. In some alternative embodiments of the present invention,some or all of the functionality that is provided in system 100 bysystem controller 110, is distributed among sensor nodes 201.

Sensor nodes 201 are configured to provide data to actor nodes 202 onone or more physical conditions that are being monitored by the sensors.When the sensor data is received by actor nodes 202, the actor nodes canuse the sensor data to control actor units as described below, whereinthe actor units are configured to perform one or more functions. Thecommunication, however, between sensor nodes 201 and actor nodes 202, asrepresented by arrows, is not necessarily reliable. The communicationcan be unreliable in the sense that one or more of actor nodes 202 mightnot receive one or more messages containing sensor data. Consequently,one or more output values from the controllers or controller logic ofactor nodes 202 might be out of synch with one another and need to becoordinated, in the manner described below and in accordance with theillustrative embodiment.

As depicted in FIG. 2, sensor functionality and actor functionalityreside in separate nodes. As those who are skilled in the art willappreciate after reading this specification, in some embodiments asensor node can further comprise actor functionality, or an actor nodecan further comprise sensor functionality, or both.

Data network 210 is a mesh network, as is known in the art, and enablescommunication among sensor nodes 201-1 through 201-J and actor nodes202-1 through 202-K. To this end, the nodes within network 210distribute data (e.g., the packet-based messages, etc.) amongst oneanother in accordance with Bluetooth mesh networking. A “mesh network”is a network topology in which each node relays data for the network.The nodes that are involved cooperate in the distribution of data in thenetwork. A mesh network can relay messages using a flooding technique ora routing technique, or a combination of the two.

In some other embodiments, network 210 communicates via one or moreother radio telecommunications protocols other than or in addition toBluetooth mesh networking such as, but not limited to, Z-Wave, ZigBee,Thread, Wi-Fi, straight Bluetooth Low Energy (BLE), classic Bluetooth,and so on. Furthermore, as those who are skilled in the art willappreciate after reading this specification, at least some network nodesdepicted in FIG. 2 in some embodiments can be connected directly andnon-wirelessly to one other, at least for some purposes and/or for someportion of time, such as through Universal Serial Bus (USB), FireWire™,or Thunderbolt™, for example and without limitation.

FIG. 3 depicts at least some of the nodes within data network 210, inaccordance with the illustrative embodiment. The nodes are depictedaccording to how they are situated within building 300, according to afloor plan. Building 300 is equipped with network nodes 301-1 through301-M, wherein M is a positive integer (e.g., M equal to 9 as depicted,etc.). As depicted in FIG. 3, nodes 301-1 through 301-M are lightfixtures (or “luminaires” and denoted by “L”). The networked nodescommunicate wirelessly with one another via transmitted signals 302-1,302-2, and so forth, via network 210. In some alternative embodiments ofthe present invention, however, one or more of the depicted elements cancommunicate via wired connections.

Node 301-m, wherein m has a value between 1 and M, inclusive, is anapparatus that comprises memory, processing components, andcommunication components. Node 301-m is configured to transmit signals302-m that convey control-related information, such as packet-basedmessages. Node 301-m is also configured to provide light at an outputthat is based, at least in part, on the content of one or more messagesreceived from one or more other luminaires (e.g., sensor data messages,synchronization messages, etc.). In some embodiments of the presentinvention, node 301-m can also be configured to sense one or morephysical conditions and can transmit messages based on the one or morephysical conditions sensed. Node 301-m is described in detail below andin FIG. 4.

In accordance with the illustrative embodiment, nodes 301-1 through301-M are luminaires comprising lamps that provide light to, and serveas light sources for, their environment within building 300. As thosewho are skilled in the art will appreciate after reading thisspecification, however, the nodes can be devices that are other thanluminaires. For example, one or more of the luminaires can be othertypes of nodes, such as sound systems or sprinklers, that provide adifferent type of output than light, such as sound or water.

Nodes 301-1 through 301-M are similar to actor nodes 202, in that theyeach comprise a controller unit and an actor unit in the illustrativeembodiment, a luminaire with controller logic and comprising acontrollable lamp as an actor unit. At least some of nodes 301-1 through301-M further comprise sensor units, such as ambient light sensors (ALS)that measure illuminance; nodes comprising sensor units are alsoconsidered to be sensor nodes, such as sensor nodes 201. In someembodiments, some nodes might be present within the depicted datanetwork that are sensor nodes, but that are not also controller nodes oractor nodes.

In accordance with the illustrative embodiment, nodes 301-1 through301-M constitute an automation and control system more specifically, anetworked lighting system in a commercial building, such as an officespace or a retail space. As those who are skilled in the art willappreciate after reading this specification, however, the luminaires canalso be applied to a different type of building, such as a home, or toinclude the environment surrounding the building, or to any environmentin which automated control can be applied.

Furthermore, building 300 can be a different type of structure with aroof and walls, or can instead be a defined area that comprises multiplesub-areas (e.g., open space, one or more conference rooms, one or morecorridors, one or more closed offices, etc.). At least a portion of thearea and/or sub-areas can be defined by something other than a roofand/or walls (e.g., a tent, an outdoor pavilion, a covered parking lot,a stadium or arena, etc.).

As depicted, nodes 301-1 through 301-M are positioned uniformly in agrid-like pattern. However, as those who are skilled in the art willappreciate after reading this specification, the luminaires can bepositioned in any geometry or geometries with respect to one another,provided that each luminaire is within communication range of one ormore of the other luminaires.

FIG. 4 depicts the salient components of node 301-m according to theillustrative embodiment. Node 301-m is based on a data-processingapparatus whose hardware platform comprises: sensor unit 401-1 through401-J, wherein J is a positive integer, actor unit 402-1 through 402-K,wherein K is a positive integer, controller 403, memory 404, and radiocommunications module 405, interconnected as shown.

Sensor unit 401-j, wherein j has a value between 1 and J, inclusive, isan apparatus that comprises memory, processing components, andcommunication components, and is configured to gather information aboutthe environment that is accessible by the sensor unit. Each sensor isconfigured to monitor a particular physical condition in well-knownfashion (e.g., temperature, ambient light, humidity, occupancy, etc.).For example, at least some of nodes 301-1 through 301-9 comprise anambient light sensor.

Each sensor unit is configured to report a state of the condition byproviding input signals to controller 403, wherein the values of theinput signals are representative of the states being reported. A givensensor unit 401-j can report discrete input signal values and/or acontinuum of states and can report states at particular times and/orcontinuously and/or asynchronously. A change in state, which isdetermined by controller 403 as described below, can occur based one ormore sensor units detecting changes in the following, in anycombination:

-   -   i. environmental probes (e.g., temperature, ambient light,        motion, infrared signature, humidity, etc.).    -   ii. electrical inputs (i.e., binary, analog, bus), including        from a switch.    -   iii. signals received via radio (e.g., proximity beacons, etc.).    -   iv. a state of the internal logic, woken up periodically based        on time or on an external event.        For example and without limitation, a state change can        correspond to a switch being actuated, occupancy being detected,        a timer or counter reaching a predefined value, and so on.

Actor unit 402-k, wherein k has a value between 1 and K, inclusive, isan apparatus that comprises memory, processing components, andcommunication components, and is capable of doing something in thecourse of being affected by signals originating externally to the actorcomponent, such as from controller 403, as described in detail below. Inparticular, actor unit 402-k is configured to perform a function that isdependent on an output value from controller 403, which in turn is basedon an internal state value derived from a correction value, as describedbelow. Each actor unit acts upon its environment in well-known fashion.

Actor unit 402-k is configured to receive, transmit, process, and/orrelay signals conveying data, as well as being configured to affect acondition, physical or otherwise, in its environment, for example bygenerating a control signal. In accordance with the illustrativeembodiment, actor unit 402-1 of each node 301-1 through 301-9 is a lampwhose output is modifiable by controller logic executed by controller403, based on an internal state value that is calculated as describedbelow.

As those who are skilled in the art will appreciate after reading thisdisclosure, actor unit 402-k can provide a different function thancontrolling a lamp to give light according to a configurable lightoutput. For example and without limitation, the condition being affectedcan be:

-   -   i. lighting, which can be adjusted (e.g., turning on or off,        changing light output, changing brightness, changing color or        mood, changing illuminance, displaying a picture or pattern,        etc.).    -   ii. sound, which can be adjusted (e.g., increasing or decreasing        volume, changing playlist or mood, turning on/off, selecting        signal source, etc.).    -   iii. room climate, which can be controlled (e.g., increasing or        decreasing temperature, humidity, air fragrance, fan speed,        etc.).    -   iv. an alert, which can be generated (e.g., of an email, of an        SMS message, etc.).    -   v. monitoring by a camera, which can be panned or tilted.    -   vi. office meeting/presentation settings (e.g., selecting one or        more of signal source, streaming application, multimedia to        play, audio language, subtitles, chapter, play/pause/stop,        rewind/fast forward, etc.).    -   vii. connected/smart video monitor features (e.g., selecting        application to be launched, navigating through on-screen menus,        etc.).    -   viii. virtual keyboard navigation on virtual keyboard displayed        by other device (e.g., video monitor, set-top box, etc.).    -   ix. control of shades/window coverings/blinds.    -   x. access control (e.g., unlocking/locking doors,        opening/shutting doors, authorizing access to selected rooms or        zones, etc.).

Furthermore, node 301-m can comprise any combination of and any numberof actor functions. As those who are skilled in the art will appreciate,after reading this disclosure, node 301-m that comprises one or moreactor functions can be in a variety of forms, such as a luminaire in alighting system as in the illustrative embodiment, a media player aspart of an audio/video system, a heater and/or ceiling fan as part of anenvironment control system, an outgoing-email server as part of amessaging system, an actor in a water sprinkler system, a pump, a robotor robotic arm, a pan/tilt camera, a switch, a motor, a servo mechanism,and so on.

Controller 403 is a processing device, such as a microcontroller ormicroprocessor with a controller interface, which are well known in theart. Controller 403 is configured such that, when operating inconjunction with the other components of node 301-m, controller 403executes software, processes data, and telecommunicates according to theoperations described herein, including those depicted in FIGS. 6 through11.

Memory 404 is non-transitory and non-volatile computer storage memorytechnology that is well known in the art (e.g., flash memory, etc.).Memory 404 is configured to store operating system 411, applicationsoftware 412, and database 413. The operating system is a collection ofsoftware that manages, in well-known fashion, node 301-m's hardwareresources and provides common services for computer programs, such asthose that constitute the application software. The application softwarethat is executed by controller 403 according to the illustrativeembodiment enables node 301-m to perform the functions disclosed herein.

It will be clear to those having ordinary skill in the art how to makeand use alternative embodiments that comprise more than one memory 404;or comprise subdivided segments of memory 404; or comprise a pluralityof memory technologies that collectively store the operating system,application software, and database.

Radio communications module 405 is configured to enable node 301-m totelecommunicate with other devices and systems, including other meshnetwork nodes, by receiving signals therefrom and/or transmittingsignals thereto via receiver 421 and transmitter 422, respectively.Radio communications module 405 communicates in accordance withBluetooth mesh networking. In some other embodiments, radiocommunications module 405 communicates via one or more other radiotelecommunications protocols other than or in addition to Bluetooth meshnetworking such as, but not limited to, Z-Wave, ZigBee, Thread, Wi-Fi,straight Bluetooth Low Energy (BLE), classic Bluetooth, and so on.

Receiver 421 is a component that enables node 301-m to telecommunicatewith other components and systems by receiving signals that conveyinformation therefrom, specifically messages from other nodes withindata network 210. It will be clear to those having ordinary skill in theart how to make and use alternative embodiments that comprise more thanone receiver 421.

Transmitter 422 is a component that enables node 301-m totelecommunicate with other components and systems by transmittingsignals that convey information thereto, specifically messages that canbe received by other nodes within data network 210. For example andwithout limitation, transmitter 422 is configured to transmit packetscomprising the information described below and in FIGS. 6 through 10. Itwill be clear to those having ordinary skill in the art how to make anduse alternative embodiments that comprise more than one transmitter 422.

In accordance with the illustrative embodiment, node 301-m uses radiocommunications module 405 in order to telecommunicate wirelessly withexternal devices. It will clear to those skilled in the art, however,after reading the present disclosure, how to make use and use variousembodiments of the present invention in which node 301-m communicatesvia a wired protocol (e.g., X10, KNX, etc.) over physical media (e.g.,cable, wire, etc.) with one or more external devices, either in additionto or instead of the wireless capability provided by radiocommunications module 405.

In generating and transmitting one or more packets that convey a messagewithin data network 210, along with including its own network address asthe source address in the message, node 301-m is said to originate themessage. Node 301-m is further capable of forwarding a message that hasbeen originated by a different node. For example, node 301-9 mightoriginate and transmit one or more messages containing ALS sensor data,node 301-6 might act upon those messages transmitted by node 301-9 byadjusting the light output level of its lamp; node 301-6 might alsoretransmit the sensor data messages that it receives, so that othernodes (e.g., node 301-3, etc.) may act on and/or retransmit the sensordata.

With regard to a specific node's configuration, node 301-m can beconfigured as a sensor node in that it includes, as a minimum, sensorunit or units 401, components configured to transmit the sensor datainto data network 210, and, possibly, components configured to receivedata transmitted by other nodes. Alternatively, node 301-m can beconfigured as a controller node in that it includes, as a minimum,controller 403, actor unit or units 402, components configured toreceive sensor data transmitted by other nodes, and, possibly,components configured to transmit data into data network 210. As thosewho are skilled in the art will appreciate after reading thisspecification, node 301-m can be configured according to othercombinations of the components depicted in FIG. 4 (e.g., to include bothsensor node- and controller node-related components, etc.), depending onthe functionality required of the node.

FIG. 5 depicts the salient features of Light Lightness Controller (LC)architecture 500, which defines, at least in part, the controller logicexecuted by controller 403 of luminaire node 301-m. In accordance withthe illustrative embodiment, the luminaire node is a PI(Proportional-Integral) controller as is known in the art. Becausecontroller 403 uses an integral control term, it is considered to be asequential controller and, consequently, has internal states. The LightLC is defined in Mesh Model Bluetooth® Specification, Revision v1.0,dated Jul. 13, 2017 (hereinafter, the “Mesh Model”), which isincorporated herein by reference.

Inputs 501 are input states to the light LC state machine 502. At leastsome of the inputs correlate to data (e.g., physical conditions, etc.)reported by one or more sensors. Lightness Out state 503 feeds intoSquaring Function 504, and the results of which feed into Function 507,which selects the maximum of its inputs. Lux Level Out state 505 feedsinto PI regulator 506, and the results of which feed into Function 507.The maximum of the inputs into Function 507 is selected as Linear Output508, which corresponds to output of lamp of node 301-m. All of theaforementioned elements are described in the Mesh Model.

As those who are skilled in the art will appreciate after reading thisspecification, in some embodiments of the present invention thecontroller logic executed by controller 403 of node 301-m can be definedby architecture 500 with additional extensions or by a differentarchitecture entirely. For example and without limitation, instead ofbeing a PI controller, controller 403 can have an architecture thatdefines it as a PID (Proportional-Integral-Derivative) controller or afuzzy logic controller.

As a PI controller, controller 403 repeatedly calculates an error valueas the difference between a desired setpoint and a measured processvariable and applies a correction based on proportional (“P”) andintegral (“I”) control terms. In accordance with the illustrativeembodiment, the setpoint of each luminaire in a defined group ofluminaires is defined in terms of a light lightness (lux) value, whichis the same across all luminaires in the group. That is, all of theluminaires in the defined group are configured to maintain a constantlux level, defined by the setpoint using a closed-loop algorithm byprocessing input values provided by ambient light sensors. Eachluminaire repeatedly calculates, for example:

-   -   i. the integral control term, which is based on the calculated        error value based on, at least in part, the previous integral        term and the most recently received ALS value (i.e., the        measured process variable), and    -   ii. the output value with which to control the luminaire's light        output level of its lamp.

As described earlier, the communication between nodes comprising sensorsand other nodes is not assumed to be perfectly reliable; indeed, amessage containing sensor data (e.g., ambient light level, etc.) andtransmitted by one luminaire (e.g., node 301-1, etc.) might not bereceived by one or more of other luminaires (e.g., node 301-2 node301-5, etc.). For that matter, the synchronization messages transmittedby controller nodes as described below are also not assumed to betransmitted in a perfectly reliable manner; indeed, one or more of suchmessages might also be lost. As a result, the most recently received ALSvalue at one luminaire within a group might be different than the mostrecently received ALS value at another luminaire within the group. Alsoas described earlier, the controllers of the luminaires have internalstates. Consequently, one or more output values from the controllers orcontroller logic of a group of luminaires might be out of synch with oneanother and need to be coordinated. A method of imposing synchronizationacross the controllers is described below.

Operations of Node 301-m:

FIG. 6 depicts salient operations of method 600 according to theillustrative embodiment, by which each node 301-m performs variousfunctions related to processing synchronization messages received fromother nodes within data network 210 and to transmitting synchronizationmessages for other nodes to process.

In regard to method 600, as well as to the other methods depicted in theflowcharts and message flow diagrams contained herein, it will be clearto those having ordinary skill in the art, after reading the presentdisclosure, how to make and use alternative embodiments of the disclosedmethods in which the recited operations, sub-operations, and messagesare differently sequenced, grouped, or sub-divided all within the scopeof the present invention. It will be further clear to those skilled inthe art, after reading the present disclosure, how to make and usealternative embodiments of the disclosed methods wherein some of thedescribed operations, sub-operations, and messages are optional, areomitted, or are performed by other elements and/or systems than node301-m.

Node 301-5 is featured here for pedagogical purposes as performing theoperations associated with method 600. As those who are skilled in theart will appreciate after reading this specification, other nodes in adefined group of plural nodes within data network 210 perform method 600concurrently with node 301-5 and with one another. In particular, thenodes concurrently calculate correction values (e.g., IS_(corr1) in node301-5, IS_(corr2) in node 301-6, etc.), calculate corrected values ofinternal states based on the respective correction values, and transmitsynchronization messages containing information related to the correctedinternal state values.

In accordance with operation 601, node 301-5 monitors for messages beingtransmitted that contain sensor data that is, from a node transmitting asource network address that is known to represent an originating sourceof sensor data. Only if a sensor data message is detected does thecontrol of the task execution proceed to operation 603. Otherwise,control of task execution proceeds to operation 607.

In accordance with operation 603, node 301-5 receives the messagecontaining sensor data.

In accordance with operation 605, node 301-5 calculates an internalstate value based on the message received at operation 603. Operation605 is described below and with respect to FIG. 7.

In accordance with operation 607, node 301-5 monitors for messages beingtransmitted that contain synchronization data that is, from a nodetransmitting a source network address that is known to represent anoriginating source of synchronization data. Only if a synchronizationdata message is detected does the control of the task execution proceedto operation 609. Otherwise, control of task execution proceeds tooperation 613.

In accordance with operation 609, node 301-5 receives the messagecontaining synchronization data.

In accordance with operation 611, node 301-5 calculates a correctedvalue based on the message received at operation 609. Operation 611 isdescribed below and with respect to FIG. 8.

In accordance with operation 613, node 301-5 sets an output value forits actor unit 402. Operation 613 is described below and with respect toFIG. 9.

In accordance with operation 615, node 301-5 determines whether amessage containing synchronization data is to be transmitted. Operation615 is described below and with respect to FIG. 10.

If a message containing synchronization data is to be transmitted, basedon the results of operation 615, control of task execution proceeds tooperation 619. Otherwise, control of task execution proceeds back tooperation 601.

In accordance with operation 619, node 301-5 transmits a messagecontaining synchronization data. Operation 619 is described below andwith respect to FIG. 11.

As mentioned earlier, other nodes in a defined group of plural nodeswithin data network 210 perform method 600 concurrently with node 301-5and with one another. Although the values of at least some of theinternal states are synchronized across a group of controller nodes, thetiming itself of when each operation is performed is not necessarilysynchronized. Thus, the transmitting of the synchronization messages isnot synchronized across the plurality of controller nodes, in accordancewith the illustrative embodiment. In some alternative embodiments of thepresent invention, however, the transmitting of at least some of thesynchronization messages can be synchronized across at least some of thenodes.

After operation 619, control of task execution proceeds back tooperation 601, in part to repeatedly transmit the synchronizationmessage containing the value of the internal state that corresponds towhichever particular iteration of method 600 is currently beingperformed.

Operations of Node 301-m in Calculating an Internal State Value:

FIG. 7 depicts salient sub-operations of operation 605, by which theluminaire performs various functions related to calculating one or moreinternal state values. In accordance with the illustrative embodiment,the internal state is defined by an integral (I) control term of a PIcontroller. As those who are skilled in the art will appreciate afterreading this specification, in some embodiments the internal state canbe defined a different control term, in addition to or instead of theintegral control term.

In accordance with operation 701, controller 403 calculates the value ofthe integral control term, based on i) the previous value of theintegral control term, ii) the most recent value of a physical conditionbeing monitored by a sensor, in this case an ALS value, and iii) adesired setpoint value of the physical condition. In some embodiments ofthe present invention, a goal is for the output value (i.e., forcontrolling the actor unit 402) to provide a light level so that i) theilluminance subsequently measured by the reporting ALS is equal to ii)the value configured as the setpoint. It will be clear to those skilledin the art how to calculate the value of the integral control term.

Operations of Node 301-m in Calculating a Corrected Value to theInternal State:

FIG. 8 depicts salient sub-operations of operation 611, by which theluminaire performs various functions related to calculating a correctedvalue to the internal state value calculated in accordance withoperation 605.

In accordance with operation 801, controller 403 calculates a correctionvalue, with which to correct the internal state value, based on one ormore of:

-   -   i. an internal state value received from another controller        node,    -   ii. the internal state value of the present controller node        (i.e., node 301-5), calculated in accordance with operation 605,    -   iii. a desired rate of convergence, and    -   iv. the number of controller nodes in the defined group of nodes        to which the present controller node belongs.

Controller 403 calculates the correction value according to Equation 1:IS _(corr) =k*(IS _(recv) −IS)/C _(count),  (Eq. 1)wherein:

-   -   IS_(corr) is the correction value,    -   k is the desired rate of convergence (e.g., greater than zero,        less than 0.5, 0.2, etc.),    -   IS_(recv) is the value of the internal state that is received        from another controller node,    -   IS is the value of the internal state calculated in accordance        with operation 605, and    -   C_(count) is the number of controller nodes within the defined        group of nodes to which the present controller node belongs and        that are active (i.e., transmitting synchronization messages).

C_(count) can be determined by controller node 301-5 discovering thenumber of other controller nodes in the group, by monitoringcommunication in data network 210. For example and without limitation,the controller node can monitor for sources addresses of the controllernodes within its predefined group and maintain a record of the sourceaddresses that are detected as being in the transmitted synchronizationmessages. Based on the number of source addresses that correspond tocontroller nodes that are in the record, controller node 301-5 candetermine the total number of controller nodes.

In some alternative embodiments of the present invention, C_(count) isthe number of controller nodes within the defined group of nodes towhich the present controller node belongs, without any consideration ofwhether they are active.

In accordance with operation 803, controller 403 calculates a correctedvalue of the internal state value based on Equation 2:IS _(new) =IS+IS _(corr),  (Eq. 2)wherein:

-   -   IS_(new) is the corrected value of the internal state,    -   IS is the value of the internal state calculated in accordance        with operation 605, and    -   IS_(corr) is the correction value.

Operations of Node 301-m in Setting an Output Value:

FIG. 9 depicts salient sub-operations of operation 613, by which theluminaire performs various functions related to setting an output valueto be used by the controlled lamp (i.e., the actor unit).

In accordance with operation 901, controller 403 sets the output value(related to the process variable described above and in regard to FIG.5) for controlling the actor unit to provide a function at a particularlevel, wherein the output value is based on IS_(new) determined inaccordance with operation 611.

In some alternative embodiments of the present invention, and to guardagainst causing an unacceptably large change in the output value (e.g.,a sudden change in light level perceived by building residents, etc.),controller 403 can calculate IS_(step) according to Equation 3:IS _(step) =IS _(corr) /m,  (Eq. 3)wherein:

-   -   IS_(step) is a step value that is added (instead of IS_(corr))        to IS over m iterative steps in order to obtain IS_(new) in        operation 611,    -   IS_(corr) is the correction value, and    -   m is the number of iterative steps over which IS is to be        corrected by IS_(corr).        As a result, the output value can be gradually changed, rather        than suddenly changed.

Operations of Node 301-m in Determining when a Synchronization Messageis to be Transmitted:

FIG. 10 depicts salient sub-operations of operation 615, by which theluminaire performs various functions related to determining when theluminaire is to transmit a synchronization message (i.e., for one ormore other luminaires to use). Determining when the luminaire is totransmit a synchronization message as described below can reduce thenumber of messages being transmitted within data network 210 in general,thereby lessening congestion and load on the data network resulting fromsynchronization messages.

In accordance with operation 1001, controller 403 determines whethersynchronization messages are to be transmitted at the present time. Todo so, controller 403 first defines a deviation amount. In accordancewith the illustrative embodiment, this is a maximum absolute deviationfrom the setpoint defined in operation 605, expressed in lux. In somealternative embodiments of the present invention, the deviation isinstead defined as a maximum relative deviation from the setpointdefined in operation 605, expressed as a percentage. Accordingly,synchronization messages are to be transmitted, in accordance withoperation 619, only when the reported ALS value (i.e., received from asensor) is within the defined deviation amount.

Operation 1001 attempts to promote the transmitting of synchronizationmessages only when controller 403 is in a stable state. In the case ofcontrolling the ambient light in a building area, a non-stable state canoccur when there is a sudden change in the ambient light, such as whenthere is sudden cloud cover and the daylight component of a room'sambient light suddenly—and perhaps momentarily—drops, in which case itwould be undesirable for the Integral control term to contribute to theoutput values calculated in the other controller nodes.

In accordance with operation 1003, controller 403 determines the periodbetween transmissions of successive synchronization messages, during thestretches of time when transmissions are permitted to occur asdetermined in operation 1001, based on C_(count) as determined inoperation 611 and a network load parameter (i.e., “LOAD”). The networkload parameter is defined to represent the combined volume of messagestransmitted by all controller nodes per second within the defined group.In some embodiments of the present invention, controller 403 sets theperiod according to Equation 4:Period=C _(count)/LOAD,  (Eq. 4)wherein C_(count) and LOAD are as defined above.

In some alternative embodiments of the present invention, the period isbased on C_(count) but not on LOAD, while in some other alternativeembodiments the period is based on LOAD but not on C_(count).

Controller node 301-5 can then go on to transmit one or moresynchronization messages based on the period determined in accordancewith operation 1003.

Operations of Node 301-m in Transmitting a Synchronization Message:

FIG. 11 depicts salient sub-operations of operation 619, by which theluminaire performs various functions related to transmitting asynchronization message containing information about one or moreinternal states. Node 301-5 transmits a synchronization messagecontaining IS_(new) (i.e., the corrected value of the internal state) asdetermined in operation 611. In some embodiments, node 301-5 transmits asynchronization message containing IS (i.e., the previous value of theinternal state). In some other embodiments, node 301-5 transmits asynchronization message containing a different variation of an internalstate-related value (e.g., IS_(corr), IS_(step), etc.).

It is to be understood that the disclosure teaches just one example ofthe illustrative embodiment and that many variations of the inventioncan easily be devised by those skilled in the art after reading thisdisclosure and that the scope of the present invention is to bedetermined by the following claims.

What is claimed is:
 1. A system that includes a plurality ofdata-networking nodes in a wireless mesh network, the plurality ofdata-networking nodes comprising a first node and a second node;wherein: the first node comprises: (i) a first receiver configured toreceive, via the wireless mesh network, a first plurality of messages,wherein each message in the first plurality of messages contains arespective state value of a first internal state, and wherein the firstplurality of messages comprises at least some of the messages in afourth plurality of messages transmitted by the second node, (ii) afirst controller configured to generate a first plurality of correctionvalues, including a first correction value, wherein each correctionvalue in the first plurality of correction values is dependent on (a)the respective state value received as part of the first plurality ofmessages and (b) an internal state value of the first internal state ofthe first node, (iii) a first lamp configured to provide light at lightoutputs that are dependent on the correction values in the firstplurality of correction values, including the first correction value,and (iv) a first transmitter configured to transmit, via the wirelessmesh network, a second plurality of messages containing values of thefirst internal state that are generated by the first node, including amessage that contains a first state value of the first internal state,the first state value being dependent on the first correction value; andwherein: the second node comprises: (i) a second receiver configured toreceive, via the wireless mesh network, a third plurality of messages,wherein each message in the third plurality of messages contains arespective state value of the first internal state, and wherein thethird plurality of messages comprises at least some of the messages inthe second plurality of messages transmitted by the first node, (ii) asecond controller configured to generate a second plurality ofcorrection values, including a second correction value, wherein eachcorrection value in the second plurality of correction values isdependent on (a) the respective state value received as part of thesecond plurality of messages and (b) an internal state value of thefirst internal state of the second node, (iii) a second lamp configuredto provide light at light outputs that are dependent on the correctionvalues in the second plurality of correction values, including thesecond correction value, and (iv) a second transmitter configured totransmit, via the wireless mesh network, the fourth plurality ofmessages containing values of the first internal state that aregenerated by the second node, including a message that contains a secondstate value of the first internal state, the second state value beingdependent on the second correction value.
 2. The system of claim 1,wherein the first internal state is defined by an integral (I) controlterm.
 3. The system of claim 1, wherein the first node is furtherconfigured to periodically transmit the messages in the second pluralityof messages, with a transmission period that is dependent on i) thenumber of nodes in the plurality of data-networking nodes that areconfigured to provide light and ii) a network load parameter.
 4. Thesystem of claim 1, further comprising: a sensor node configured tomonitor a physical condition and to report values of the physicalcondition; wherein one or more of the values of the first internal statethat are generated by the first node are dependent on the values of thephysical condition.
 5. The system of claim 4, wherein the physicalcondition is ambient light level sensed by the sensor node.
 6. Thesystem of claim 4, wherein the first node is further configured totransmit the messages containing values of the first internal state,only if a value reported by the sensor node is within a predefineddeviation from a predefined setpoint.
 7. The system of claim 1, whereinthe first correction value is further dependent on the number of nodesin the plurality of data-networking nodes that are configured to providelight.
 8. The system of claim 7, wherein the first node is furtherconfigured to discover the number of nodes in the plurality ofdata-networking nodes that are configured to provide light, bymonitoring communication in the wireless mesh network.
 9. A firstluminaire configured to operate in a wireless mesh network comprising aplurality of data-networking nodes, the first luminaire comprising: areceiver configured to receive, via the wireless mesh network, a firstmessage transmitted by another node in the plurality of data-networkingnodes, the first message containing a first state value of a firstinternal state; a controller configured to generate a first correctionvalue, IS_(corr1), that is dependent on (a) the first state valuereceived in the first message, (b) an internal state value of the firstinternal state of the first luminaire, and (c) the number of luminairesin the plurality of data-networking nodes; a lamp configured to providelight at a light output that is dependent on the first correction value;and a transmitter configured to transmit, via the wireless mesh network,a first series of messages containing values of the first internal statethat are generated by the first luminaire, including a second messagecontaining a second state value of the first internal state, the secondstate value being dependent on the first correction value.
 10. The firstluminaire of claim 9, wherein the plurality of data-networking nodescomprises, in addition to the first luminaire: a sensor node configuredto monitor ambient light level and to report values of the ambient lightlevel; wherein one or more of the values of the first internal statethat are generated by the first luminaire are dependent on the values ofthe ambient light level.
 11. The first luminaire of claim 10, whereinthe first luminaire is further configured to transmit the messagescontaining values of the first internal state, only if a value reportedby the sensor node is within a predefined deviation from a predefinedsetpoint.
 12. The first luminaire of the claim 9, wherein the firstinternal state is defined by an integral (I) control term.
 13. The firstluminaire of claim 9, wherein the first luminaire is further configuredto discover the number of luminaires in the plurality of data-networkingnodes by monitoring communication in the wireless mesh network.
 14. Thefirst luminaire of claim 9, wherein the first luminaire is furtherconfigured to periodically transmit the messages containing values ofthe first internal state, with a transmission period that is dependenton i) the number of luminaires in the plurality of data-networking nodesand ii) a network load parameter.
 15. A method for operating a firstluminaire in a wireless mesh network comprising a plurality ofdata-networking nodes, the method comprising: receiving, via thewireless mesh network, a first message transmitted by another node inthe plurality of data-networking nodes, the first message containing afirst state value of a first internal state; generating a firstcorrection value, IS_(corr1), that is dependent on (a) the first statevalue received in the first message, (b) an internal state value of thefirst internal state of the first luminaire, and (c) the number ofluminaires in the plurality of data-networking nodes; providing light,via a lamp, at a light output that is dependent on the first correctionvalue, and transmitting, via the wireless mesh network, a first seriesof messages containing values of the first internal state that aregenerated by the first luminaire, including a second message containinga second state value of the first internal state, the second state valuebeing dependent on the first correction value.
 16. The method of claim15, further comprising: monitoring ambient light level, via a sensornode that is in the plurality of data-networking nodes; and reporting,via the sensor node, values of the ambient light level; wherein one ormore of the values of the first internal state that are generated by thefirst luminaire are dependent on the values of the ambient light level.17. The method of claim 16, wherein the transmitting of the messagescontaining the values of the first internal state occurs only if a valuereported by the sensor node is within a predefined deviation from apredefined setpoint.
 18. The method of claim 15, wherein the firstinternal state is defined by an integral (I) control term.
 19. Themethod of claim 15, further comprising discovering the number ofluminaires in the plurality of data-networking nodes by monitoringcommunication in the wireless mesh network.
 20. The method of claim 15,wherein the transmitting of the first series of messages occurs inaccordance with a transmission period between successive messages in thefirst series that is dependent on i) the number of luminaires in theplurality of data-networking nodes and ii) a network load parameter.